home *** CD-ROM | disk | FTP | other *** search
/ 10,000 Great Games / 10,000 Great Games.iso / Product / 66 / data1.cab / Source_Files / Src / Thumper.cpp < prev    next >
C/C++ Source or Header  |  2000-01-16  |  800b  |  47 lines

  1. #include "stdafx.h"
  2.  
  3. cThumper::cThumper(int _x, int _y)
  4.         : cWeapon(_x, _y, thumper, "MOVING")
  5.     explode_wait = THUMPER_DELAY;
  6.     
  7.     push_moving_direction = FALSE;
  8.     
  9.     move_object_after_hit = FALSE;
  10. }
  11.  
  12. cThumper::~cThumper()
  13. {
  14.     if (y_on_screen())
  15.         cEffect::make(x, y, orig, "EXPLOSIONS", 5+rnd(5), 80, 5);
  16. }
  17.  
  18. static int hit_struct(cMovable *, cDisplayable *s, cCircle *, cCircle *)
  19. {
  20.     ((cStructure *)s)->explode = TRUE;
  21.     
  22.     return TRUE;
  23. }
  24.  
  25. int cThumper::control()
  26. {
  27.     cWeapon::control();
  28.     
  29.     bounce_on_boundaries();
  30.     
  31.     // Check if we're to explode
  32.     
  33.     if (!explode_wait || explode)
  34.     {
  35.         cCircle c(0, 0, THUMPER_RADIUS);
  36.         
  37.         check_radial_boundaries(&c, structures, hit_struct);
  38.         
  39.         return FALSE;
  40.     }
  41.     
  42.     // Delete when off screen
  43.     
  44.     return !in_water();
  45. }
  46.